package com.ruicheng.iam.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.URL;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * 项目信息 DTO
 * @author huang guang yue
 * @version v1.0.0
 * @date 2020 2020/11/25 11:38
 */
@Data
@ApiModel("项目信息")
public class ProjectInfoDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "ID，添加不传；修改必传", example = "123")
    private Long id;

    /**
     * IAM appCode
     */
    @ApiModelProperty("IAM appCode")
    @NotNull(message = "appCode 不能为空")
    private String appCode;

    /**
     * IAM appSecret
     */
    @ApiModelProperty("IAM appSecret")
    @NotNull(message = "appSecret 不能为空")
    private String appSecret;

    /**
     * IAM 回调地址
     */
    @ApiModelProperty("IAM 回调地址")
    @NotNull(message = "IAM 回调地址 不能为空")
    @URL(message = "回调地址不合法")
    private String codeUrl;

    /**
     * 项目名称
     */
    @ApiModelProperty("项目名称")
    @NotNull(message = "项目名称 不能为空")
    private String appName;

    /**
     * 项目数据库IP
     */
    @ApiModelProperty("项目数据库IP")
    @NotNull(message = "项目数据库IP 不能为空")
    private String dbHost;

    /**
     * 项目数据库端口
     */
    @ApiModelProperty("项目数据库端口")
    @NotNull(message = "项目数据库端口 不能为空")
    private Integer dbPort;

    /**
     * 数据库用户名
     */
    @ApiModelProperty("数据库用户名")
    @NotNull(message = "数据库用户名 不能为空")
    private String dbUsername;

    /**
     * 数据库密码
     */
    @ApiModelProperty("数据库密码")
    @NotNull(message = "数据库密码 不能为空")
    private String dbPassword;

    /**
     * 登陆名字段
     */
    @ApiModelProperty("登陆名字段")
    @NotNull(message = "登陆名字段 不能为空")
    private String loginNameFiled;

    /**
     * 密码字段
     */
    @ApiModelProperty("密码字段")
    @NotNull(message = "密码字段 不能为空")
    private String passwordFiled;

    /**
     * 表名
     */
    @ApiModelProperty("表名")
    @NotNull(message = "表名 不能为空")
    private String tableName;

    /**
     * 登陆地址
     */
    @ApiModelProperty("登陆地址")
    @NotNull(message = "登陆地址 不能为空")
    @URL(message = "登陆地址不合法")
    private String loginUrl;

    /**
     * SSO登陆地址
     */
    @ApiModelProperty("SSO登陆地址")
    @NotNull(message = "SSO登陆地址 不能为空")
    @URL(message = "SSO登陆地址不合法")
    private String ssoLoginUrl;
}
